.TH std::atomic_fetch_max,std::atomic_fetch_max_explicit 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::atomic_fetch_max,std::atomic_fetch_max_explicit \- std::atomic_fetch_max,std::atomic_fetch_max_explicit

.SH Synopsis
   Defined in header <atomic>
   template< class T >

   T atomic_fetch_max( std::atomic<T>* obj,                           \fB(1)\fP (since C++26)

                       typename std::atomic<T>::value_type arg )
   noexcept;
   template< class T >

   T atomic_fetch_max( volatile std::atomic<T>* obj,                  \fB(2)\fP (since C++26)

                       typename std::atomic<T>::value_type arg )
   noexcept;
   template< class T >

   T atomic_fetch_max_explicit( std::atomic<T>* obj,
                                typename std::atomic<T>::value_type   \fB(3)\fP (since C++26)
   arg,

                                std::memory_order order ) noexcept;
   template< class T >

   T atomic_fetch_max_explicit( volatile std::atomic<T>* obj,
                                typename std::atomic<T>::value_type   \fB(4)\fP (since C++26)
   arg,

                                std::memory_order order ) noexcept;

   Atomically replaces the value pointed by obj with the result of std::max between the
   old value of obj and arg. Returns the value obj held previously. The operation is
   performed as if the following was executed:

   1,2) obj->fetch_max(arg)
   3,4) obj->fetch_max(arg, order)

   If std::atomic<T> has no fetch_max member (this member is only provided for integral
   and pointer types except bool), the program is ill-formed.

.SH Parameters

   obj   - pointer to the atomic object to modify
   arg   - the value to std::max with the value stored in the atomic object
   order - the memory synchronization ordering

.SH Return value

   The value immediately preceding the effects of this function in the modification
   order of *obj.

.SH Notes

      Feature-test macro     Value    Std          Feature
   __cpp_lib_atomic_min_max 202403L (C++26) Atomic minimum/maximum

.SH Example

    This section is incomplete
    Reason: no example

.SH See also

                             atomically performs std::max between the argument and the
   fetch_max                 value of the atomic object and obtains the value held
   (C++26)                   previously
                             \fI(public member function of std::atomic<T>)\fP
   atomic_fetch_min          replaces the atomic object with the result of std::min
   atomic_fetch_min_explicit with a non-atomic argument and obtains the previous value
   (C++26)                   of the atomic
   (C++26)                   \fI(function template)\fP

.SH Category:
     * Todo no example
